package com.wizz.trade.trading.service;

import com.wizz.trade.common.PageVo;
import com.wizz.trade.trading.dto.SpotSettlementPriceDto;
import com.wizz.trade.trading.dto.page.PositionPageDto;
import com.wizz.trade.trading.entity.Position;
import com.baomidou.mybatisplus.extension.service.IService;
import com.wizz.trade.trading.vo.GetSPriceVo;
import com.wizz.trade.trading.vo.PositionVo;

import java.util.List;
import java.util.Map;

/**
 * <p>
 * 持仓表 服务类
 * </p>
 *
 * @author fyftless
 * @since 2023-04-23 04:37:04
 */
public interface PositionService extends IService<Position> {

    /**
     * 新增持仓记录
     *
     * @param position
     */
    void addPosition(Position position);

    /**
     * 根据id更新持仓
     *
     * @param position
     */
    void updatePosition(Position position);

    /**
     * 根据id删除持仓
     *
     * @param id
     */
    void deletePosition(Integer id);

    /**
     * 分页条件查询持仓
     *
     * @param positionPageDto
     * @return
     */
    PageVo<PositionVo> getPage(PositionPageDto positionPageDto);

    /**
     * 查询所有持仓
     *
     * @return
     */
    List<Position> getAll();

    /**
     * 获取结算价列表
     *
     * @return
     */
    List<GetSPriceVo> getSettlementPrice();

    /**
     * 设置结算价
     * @param dtos
     */
    void setSettlementPrice(List<SpotSettlementPriceDto> dtos);

}
